/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ia;

import java.util.Vector;

/**
 *
 * @author Ale
 */
public class MetricasExtension {
    
    public double CalcularMetricaExtension(Vector poblacion){
        Individuo p, q;
        double obj1, obj2;
        double maxObj1 = Integer.MIN_VALUE;
        double maxObj2 = Integer.MIN_VALUE;
        
        //Calculamos el valor absoluto maximo de las diferencias de los objetivos para cada par de puntos
        //en la poblacion.
        for (int i = 0; i < poblacion.size(); i++) {
            p = (Individuo) poblacion.get(i);
            for (int j = i+1; j < poblacion.size(); j++) {
                q = (Individuo) poblacion.get(j);
                obj1 = Math.abs(p.getValorObjetivo(0)-q.getValorObjetivo(0));
                obj2 = Math.abs((1/p.getValorObjetivo(1))-(1/q.getValorObjetivo(1)));
                if(obj1 > maxObj1){
                    maxObj1 = obj1;
                }
                if(obj2 > maxObj2){
                    maxObj2 = obj2;
                }                
            }            
        }
        double resultado = Math.sqrt(maxObj1+maxObj2);
        
        return resultado;
    }
}
